
package web.usuarios;

import Persistencia.*;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import controladores.*;
import dominio.*;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
import javax.servlet.http.HttpServletResponse;

/*
 * Este controlador se encarga de agregar un comentario de un informe.
 * Retorna la lista de los comentarios del informe para mostrarlos en la pagina.
 */

public class ControladorSimpleComentar extends SimpleFormController{

    ControladorComentario controlador;
    ControladorInforme controladorInfo;
    ComentarioDomain obj;

    @Override
    public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
        controlador = new ControladorComentario();
        controladorInfo = new ControladorInforme();
        System.out.println(hsr.getParameter("tipo")+" tipo");
        Map<String, Object> myModel = new HashMap<String, Object>();
        if(hsr.getParameter("tipo")==null){
            obj=new ComentarioDomain();
            obj.setIdFisioterapeuta(hsr.getParameter("id_fisio"));
            obj.setIdInforme(hsr.getParameter("id"));
            obj.setTexto(hsr.getParameter("texto"));
            controlador.setComentarioD(obj);
            controlador.guardarComentario();
        }else if(hsr.getParameter("tipo").equals("eliminar")){
            obj=new ComentarioDomain();
            obj.setIdComentario(Integer.parseInt(hsr.getParameter("id_coment")));
            controlador.eliminarComentario(obj);
        }
        List<Comentario> list1=controlador.encontrarMisComentarios(hsr.getParameter("id"),hsr.getParameter("id_fisio"));
        List<String> list2=controlador.getEliminarComentarios();
        List<ComentarioEliminar> list3=new ArrayList();
        for(int i=0;i<list1.size();i++){
            ComentarioEliminar a= new ComentarioEliminar();
            a.setComent(list1.get(i));
            a.setEliminar(list2.get(i));
            list3.add(a);
        }
        myModel.put("id_fisio",hsr.getParameter("id_fisio"));
        myModel.put("informes", controladorInfo.encontrarInforme(hsr.getParameter("id")));
        myModel.put("comentarios", list3);
        return new ModelAndView("comentarInforme", "model", myModel);
    }

    public void setControladorComentario(ControladorComentario productManager) {
        this.controlador = productManager;
    }

    public ControladorComentario getControladorComentario() {
        return controlador;
    }
}
